package com.shujia.java.day10.demo2;

public class Master {
    //多个宠物
    private String name;
    private Pet pet;

    public Master() {
    }

    public Master(String name, Pet pet) {
        this.name = name;
        this.pet = pet;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Pet getPet() {
        return pet;
    }

    public void setPet(Pet pet) {
        this.pet = pet;
    }

    //     喂食的方法   //同一个方法 不同的实例有不同的实现
//    public void dogEat(Dog dog){
//        //给狗喂食
//        System.out.println("给狗骨头");
//        dog.eat();
//    }
//    //作用域不同
//    public void catEat(Cat cat){
//        //给狗喂食
//        System.out.println("给猫鱼");
//        cat.eat();
//    }
    //   String name        pet
    //  "主人"  "张三"   dog   cat
    //180966772616
    //love1998.
    public void petEat() {
        //喂食
        // 同过 对象名来调用
        // 判断父类对象中 是哪一个子类


        //玩 健康值 狗 -10 猫 -8
        //吃 健康值 狗 +5 猫 +4
        if (pet instanceof Dog) {
            Dog dog = (Dog) pet;
            dog.eat();
        } else {
            Cat cat = (Cat) pet;
            cat.eat();
        }
    }
    //领养宠物
    public Pet gPet(int typeId) {
        Pet pet=null;
        if (typeId == 1) {
            //父类的引用指向子类的对象
            pet = new Dog();
        } else {
             pet = new Cat();
        }
        return pet;
    }
    //和宠物玩耍
    public void play(Pet pet){
        if(pet instanceof Dog){
            Dog dog = (Dog) pet;
            dog.play();
        }else {
            Cat cat=(Cat)pet;
            cat.play();
        }
    }
}
